#include<stdlib.h>
#include"gestion_personnelnv.h"

void saisir_struct (personnel *medecin)
{
FILE *fichier_medecin;
fichier_medecin=fopen("personnel.txt","w");
printf("donner le nom du medecin  ");
fflush(stdin);
scanf("%s",((*medecin).nom));
printf("donner le prenom du medecin  ");
fflush(stdin);
scanf("%s",((*medecin).prenom));
	do
	{
	printf("donner le matricule du medecin  ");
	scanf("%d",&((*medecin).matricule));
	}
	while ((*medecin).matricule < 10000 || (*medecin).matricule > 29999);
printf("donner la specialite du medecin   ");
fflush(stdin);
scanf("%s",((*medecin).specialite));
}


void saisie_personnel(void)
{
char reponse[2];
personnel medecin ;
FILE *fichier_medecin ;
fichier_medecin = fopen("personnel.txt","w");
saisir_struct(&medecin);
	do 
		{
		printf("\n voulez vous continuez le saisie o/n ");
		scanf("%s",reponse);
      		}
	while (strcmp(reponse,"o") && strcmp(reponse,"n"));
while (strcmp(reponse,"o")==0)
{
saisir_struct(&medecin);
fprintf(fichier_medecin,"%s %s %d %s\n",(medecin.nom),(medecin.prenom),(medecin.matricule),(medecin.specialite)); 
}
fclose(fichier_medecin); 
}

void afficher_personnel(void)
{
FILE *fichier_medecin;
personnel medecin;
fichier_medecin = fopen("personnel.txt", "r");
printf("\n l'affichage de listes des medecins \n");
	while (!feof(fichier_medecin))
	{
	fscanf(fichier_medecin,"%s %s %d %s\n",(medecin.nom),(medecin.prenom),&(medecin.matricule),(medecin.specialite));
	printf ("\n %s %s %d %s\n",medecin.nom,medecin.prenom,medecin.matricule,medecin.specialite);
	}
fclose(fichier_medecin);
}


void ajouter_personnel(personnel medecin)
{int ID;
FILE *fichier_medecin;
fichier_medecin = fopen ("personnel.txt" , "a" );
printf("donner l id a ajouter\n");
scanf("%d",&ID);
	if( recherche_personnel_matricule(&medecin)==1)	
		{
		printf("cet matricule existe deja veillez entrez un autre\n");
		}
	else 
		{saisir_struct(&medecin);
		fprintf(fichier_medecin," %s %s %d %s\n",(medecin.nom),(medecin.prenom),(medecin.matricule),(medecin.specialite));
		}
fclose(fichier_medecin);
}


void supprimer_personnel(void)
{int ID;
personnel medecin;
FILE *fichier_medecin; 
FILE *fichier_aide;
fichier_medecin=fopen("personnel.txt","r");
fichier_aide=fopen("trans.txt","w");
printf("donner l id a ajouter");
scanf("%d",&ID);
	while (fscanf(fichier_medecin,"%s %s %d %s",(medecin.nom),(medecin.prenom),&(medecin.matricule),(medecin.specialite))!=EOF)
		{
		if ( ID!=(medecin.matricule)) 
			{
			 fprintf(fichier_aide,"%s %s %d %s\n",(medecin.nom),(medecin.prenom),(medecin.matricule),(medecin.specialite));
		        }
		else 
			printf("le matricule a ete supprimer \n");
		}
fclose(fichier_medecin);
fclose(fichier_aide);
remove("personnel.txt");
rename("trans.txt","personnel.txt");
		
}


void modifier_personnel(void )
{ int ID;
char choix;
char nom[10];
char prenom[10];
char specialite[10];
int matricule;
personnel medecin;
FILE *fichier_medecin;
FILE *fichier_aide;
fichier_medecin=fopen("personnel.txt","r");
fichier_medecin=fopen("aide.txt","w");
printf("donner l id a ajouter");
scanf("%d",&ID);
	do
 	{
	printf("\nsi vous voulez modifier le nom saisir 1 \n ");
 	printf("si vous voulez modifier le prenom saisir 2 \n" );
	printf("si vous voulez modifier le matricule saisir 3 \n" );
 	printf("si vous voulez modifier la specialite saisir 4 \n" );
	scanf("%c",&choix);
	}
	while (choix!='1' && choix!='2' && choix!='3' && choix!='4');
if(recherche_personnel_matricule (&medecin) == 0)
printf("\nle medecin n'existe pas "); 
else 
switch (choix)
		{case 1 : {
			  printf("donner le nom à modifier");
			  scanf("%s" , nom);
                           while (fscanf(fichier_medecin,"%s %s %d %s",(medecin.nom),(medecin.prenom),&(medecin.matricule),(medecin.specialite))!=EOF)  

	                  fprintf(fichier_aide,"%s %s %d %s",nom,(medecin.prenom),(medecin.matricule),(medecin.specialite));
			  }
	   	 break;
 		 case 2 : {
			  printf("donner le prenom à modifier");
			  scanf("%s" , prenom);
			  while (fscanf(fichier_medecin,"%s %s %d %s",(medecin.nom),(medecin.prenom),&(medecin.matricule),(medecin.specialite))!=EOF)  

	                  fprintf(fichier_aide,"%s %s %d %s",(medecin.nom),(prenom),(medecin.matricule),(medecin.specialite));
			  }
                 break;
                 case 3 : 
			  {printf("donner le matricule à modifier");
			  scanf("%d" ,&matricule);
			while (fscanf(fichier_medecin,"%s %s %d %s",(medecin.nom),(medecin.prenom),&(medecin.matricule),(medecin.specialite))!=EOF)  

	                  fprintf(fichier_aide,"%s %s %d %s",(medecin.nom),(medecin.prenom),(matricule),(medecin.specialite));
			  }
                 break;
                 case 4 : {
		         printf("donner la specialite à modifier");
			  scanf("%s" , specialite);
			while (fscanf(fichier_medecin,"%s %s %d %s",(medecin.nom),(medecin.prenom),&(medecin.matricule),(medecin.specialite))!=EOF)  

	                  fprintf(fichier_aide,"%s %s %d %s",(medecin.nom),(medecin.prenom),(medecin.matricule),(specialite));
			  }
                 break;
                }
remove("personnel.txt");
rename("aide.txt","personnel.txt");
}



int recherche_personnel_matricule(personnel *medecin)
{int ID;
int test;
FILE *fichier_medecin  ;
fichier_medecin=fopen("personnel.txt","r");
test =0;
printf("donner l id a ajouter");
scanf("%d",&ID);
	while(!feof(fichier_medecin) && test ==0 )
		{ 
		fscanf(fichier_medecin,"%s %s %d %s",((*medecin).nom),((*medecin).prenom),&((*medecin).matricule),((*medecin).specialite));
 			if (ID==((*medecin).matricule))
      				{ 
				test=1;
				} ;
		}
fclose(fichier_medecin); 
	if (test==0)
		printf("le medecin cherché n'existe pas");
	else 
		printf("le medecin existe");
return (test);
}








